package cn.hacynn.nd.service;

import cn.hacynn.nd.pojo.dto.TagFileDTO;
import cn.hacynn.nd.pojo.dto.TagRenameDTO;
import cn.hacynn.nd.pojo.entity.File;
import cn.hacynn.nd.pojo.entity.Tag;

import java.util.List;

/**
 * @Author Hacynn
 * @Date 2024/5/27 14:44
 * @Version 1.0
 */
public interface TagService {

    /**
     * 获取所有tag标签
     * @return
     */
    List<Tag> getAllTags();

    /**
     * 新增标签
     * @param name
     */
    void add(String name);

    /**
     * 获取属于该tag的所有文件
     * @param tagName
     * @return
     */
    List<File> getListByTag(String tagName);

    /**
     * 将文件添加指定的标签tag
     * @param tagFileDTO
     */
    void addFile(TagFileDTO tagFileDTO);

    /**
     * 将文件从指定的标签tag中移出
     * @param tagFileDTO
     */
    void moveFile(TagFileDTO tagFileDTO);

    /**
     * 删除标签
     * @param tagId
     */
    void delete(String tagId);

    /**
     * 标签重命名
     * @param tagRenameDTO
     */
    void rename(TagRenameDTO tagRenameDTO);
}
